RedisCluster使用P2P实现分布式,对于每个Redis节点来说,它既存储数据又要管理分布式状态,Redis节点之间使用Gossip协议进行通信,那么对于每个节点来说,它又是客户端又是服务端。所以了解节点通信的代码很重要。
|
|
1.Redis Cluster节点在初始化时,会创建AcceptTcpHandler(clusterAcceptHandler)。
可以看出RedisCluster节点内部使用port + 10000进行通信。
|
|
clusterInit会在redis.c中初始化redis实例时候使用
|
|
2. clusterAcceptHandler定义,进入clusterReadHandler逻辑。
|
|
3. clusterReadHandler:解析请求,其中clusterProcessPacket是处理各种消息的逻辑(例如ping,pong,meet等)
|
|